<html>
<body>
<h1>Jar Plugin</h1>
<p>
    The Jar Plugin packages up classes and/or resources into a .jar file.
</p>

<div id="after-summary">
    <p>If you are creating a single .jar artifact in your project then no configuration is required.
    However, if you are creating multiple .jar artifacts you must create a separated target from
    the <tt>jar-template</tt> for each artifact.</p>
</div>
<div id="jar-template">               
<p>If your project contains a single artifact of any of the following types (<tt>jar</tt>, <tt>archetype</tt>, <tt>plugin</tt>, or <tt>depset</tt>),
then you don't need to set any properties. However, if you there are multiple matching artifacts, you need to set the <tt>artifact</tt> property.</p>
<p><b>Properties:</b></p>
<ul>
<li>
    <b>aritfact</b> <i>Mandatory if multiple artifacts.</i> Value is the name and optionally the type in name:type format.
</li>
<li>
    <b>additionalTypes</b> <i>Optional.</i> If you wish to build a .jar file and your artifact is not one of the
    built-in types, you can add it here. The value is a comma separated list of type ids.
</li>
<li>
    <b>source</b> <i>Mandatory.</i> The source files to jar. Value: A quokka file set.
</li>
<li>
    <b>compress</b> <i>Optional.</i> Not only store data but also compress them,
        defaults to true. Unless you set the <tt>keepCompression</tt>

        attribute to false, this will apply to the entire archive, not
        only the files you've added while updating.
</li>
<li>
    <b>keepCompression</b> <i>Optional.</i>
    For entries coming from existing archives (like
        nested <tt>zipfileset</tt>s or while updating the archive), keep
        the compression as it has been originally instead of using the
        <tt>compress</tt> attribute. Defaults false. <tt>Since Ant
        1.6</tt>

</li>
<li>
    <b>encoding</b> <i>Optional.</i> The character encoding to use for filenames
        inside the archive. Defaults to UTF8. It is not
        recommended to change this value as the created archive will most
        likely be unreadable for Java otherwise.
</li>
<li>
    <b>filesOnly</b> <i>Optional.</i> Store only file entries, defaults to false
</li>
<li>
    <b>defaultExcludes</b> <i>Optional.</i> indicates whether default excludes should be used or not
        ("yes"/"no"). Default excludes are used when omitted.
</li>
<li>
    <b>manifest</b> <i>Optional.</i> the manifest file to use. This can be either the location of a manifest, or the name of a jar added
        through a fileset. If its the name of an added jar, the task expects the manifest to be in the jar at
        META-INF/MANIFEST.MF
</li>
<li>
    <b>filesetManifest</b> <i>Optional.</i> behavior when a Manifest is found in a zipfileset or zipgroupfileset file is found. Valid values
        are "skip", "merge", and "mergewithoutmain". "merge" will merge all of the manifests together, and merge this
        into any other specified manifests. "mergewithoutmain" merges everything but the Main section of the manifests.
        Default value is "skip".
</li>
<li>

    <b>update</b> <i>Optional.</i> indicates whether to update or overwrite
        the destination file if it already exists. Default is "false".
</li>
<li>
    <b>whenManifestOnly</b> <i>Optional.</i> behavior when no files match. Valid values are "fail", "skip", and "create". Default is "create".
</li>
<li>
    <b>duplicate</b> <i>Optional.</i> behavior when a duplicate file is found. Valid values are "add", "preserve", and "fail". The
        default value is "add".
</li>

<li>
    <b>index</b> <i>Optional.</i> whether to create an <a href="http://java.sun.com/j2se/1.3/docs/guide/jar/jar.html#JAR%20Index">index
        list</a> to speed up classloading. This is a JDK 1.3+ specific
        feature. Unless you specify additional jars with nested indexJars<code>indexJars</code>
        elements, only the
        contents of this jar will be included in the index. Defaults to
        false.
</li>
<li>
    <b>manifestEncoding</b> <i>Optional.</i> The encoding used to read the JAR manifest, when a manifest file is specified.
    Defaults to the platform encoding.
</li>
<li>
    <b>roundUp</b> <i>Optional.</i> Whether the file modification times will be
        rounded up to the next even number of seconds.<br/>
        Zip archives store file modification times with a granularity of
        two seconds, so the times will either be rounded up or down. If
        you round down, the archive will always seem out-of-date when you
        rerun the task, so the default is to round up. Rounding up may
        lead to a different type of problems like JSPs inside a web
        archive that seem to be slightly more recent than precompiled
        pages, rendering precompilation useless.<br/>
        Defaults to true.
</li>
<li>
    <b>level</b> <i>Optional.</i> Non-default level at which file compression should be
        performed. Valid values range from 0 (no compression/fastest) to 9
        (maximum compression/slowest).
</li>
<li>
    <b>indexJars</b> <i>Optional.</i> A path containing jars to index. Create the path in the quokka project and
    reference it using ${q.project.path.name}
</li>
</ul>
</div>
</body>
</html>